#ifndef _CONDITION_HPP_
#define _CONDITION_HPP_

#include "lock.hpp"
#include "noncopyable.hpp"
#include "base.hpp"

namespace mina
{
	namespace thread
	{
		class Condition : public NonCopyable
		{
			public :
				Condition();
				~Condition();

				void wait(Lock & lock);
				bool wait(Lock & lock, long ms);
				void signal();
				void brocast();

			private :
				pthread_cond_t _cond;

				DECL_LOGGER(logger);
		};
	}
}

#endif

